#include <stdio.h>

// 定义回调函数的类型
typedef void (*CallbackFunction)(int);

// 监听器结构体
typedef struct {
    CallbackFunction callback;  // 回调函数指针
} Listener;

// 初始化监听器
void initializeListener(Listener *listener, CallbackFunction callback) {
    listener->callback = callback;
}

// 触发事件的函数
void fireEvent(Listener *listener, int eventData) {
    // 检查回调函数是否存在
    if (listener->callback != NULL) {
        // 调用回调函数
        listener->callback(eventData);
    }
}

// 示例回调函数
void exampleCallback(int data) {
    printf("Callback function called with data: %d\n", data);
}

int main() {
    // 创建监听器并初始化
    Listener myListener;
    initializeListener(&myListener, exampleCallback);

    // 模拟触发事件
    int eventData = 42;
    fireEvent(&myListener, eventData);

    return 0;
}